CS5520 Assignment 1					    Fall 2004

Assigned: October 07
Due:      October 17 
(-10% penalty for each day late)

SETUP
-----
The subroutines in demo.c use OpenGL to display the meshes.  Therefore this 
program must link with related OpenGL libraries, specifically, GL, GLU, and
GLAUX libraries.

For Visual C++ 6.0 users, please open the settings in Project -> Settings -> 
Link -> General category and add "GLAUX.lib GLU32.lib OpenGL32.lib" to the
string in the Object/library modules (before kerenel32.lib).

There are two data sets in this folder: bunny.wrp and tree.wrp.  You may
modify the first line in main() to play with the other data set.


TASKS 
-----
1. Compile and test the unmodified code as soon as possible to get a good 
   feeling of what 3D warping is.  Press and hold (NOTE: not just click) 
   the left mouse button to rotate the scene.  Use the right button to move 
   the camera.  Press the 'q' key will stop the program.

2. The unmodified code draw each warped pixel simply as a pixel (or OpenGL
   point) in the output window.  You should see some artifacts caused by
   this naive approach.  Your task is to modify the code and find a way to
   reduce or remove those artifacts.  Note that this is actually an open 
   problem.  So, be creative and have fun!

3. Make some simple changes to the code in display() so that it process the
   input pixels WITHOUT following occlusion compatible order.  The purpose
   of this task is to get a better feeling of the importance of correct
   occlusion effects.  Please do NOT submit the code you modified for this
   task.  Instead, write in your report about what you did, and show a
   window dump that shows the INCORRECT occlusion effects.


SUBMISSION
----------
Submit a ZIP containing the following for this assignment:
1. Your version of demo.c (but not including the changes you made in 
   task #3).

2. If you also modify the other files, then please also include all modified
   source files, and preferrably the Visual C++ .dsw and .dsp files as well, 
   if you use VC++.

3. A short report to describe whatever you want me to know about your effort.
   For example, what approach do you take to remove the artifacts?  What
   changes do you make to the code in display()?

4. A window dump showing an example of INCORRECT results when the occlusion
   compatible order was violated.




